package pe.gob.sunat.proyecto.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import pe.gob.sunat.proyecto.model.Usuario;
import pe.gob.sunat.proyecto.service.UsuarioService;

@Controller
public class UsuarioController {

	@Autowired
	private UsuarioService usuarioService;

	@RequestMapping("/listarUsuarios.htm")
	public ModelAndView listarUsuarios() {
		return new ModelAndView("listarUsuarios", "usuarios", usuarioService
				.getUsuarios());
	}

	@RequestMapping("/eliminarUsuario.htm")
	public String eliminarUsuario(@RequestParam("username") String username) {
		usuarioService.delete(username);
		return "bienvenida";
	}

	@RequestMapping("/irRegistrarUsuario.htm")
	public ModelAndView irRegistrarUsuario() {
		return new ModelAndView("registrarUsuario", "usuario", new Usuario());
	}

	@RequestMapping("/irModificarUsuario.htm")
	public ModelAndView irModificarUsuario(
			@RequestParam("username") String username) {
		Usuario usuario = usuarioService.getUsuarioPorUsername(username);
		return new ModelAndView("modificarUsuario", "usuario", usuario);
	}

	@RequestMapping("/registrarUsuario.htm")
	public String registrarUsuario(@ModelAttribute("usuario") Usuario usuario) {
		usuarioService.insert(usuario);
		return "bienvenida";
	}

	@RequestMapping("/modificarUsuario.htm")
	public String modificarUsuario(@ModelAttribute("usuario") Usuario usuario) {
		usuarioService.update(usuario);
		return "bienvenida";
	}

}
